package main.java.com.healthy.dao;
import main.java.com.healthy.entity.HealthAdvice;
import java.util.List;

/**
 * 健康建议数据访问接口
 * 对应功能模块：智能饮食建议模块
 */
public interface HealthAdviceDAO {

    /**
     * 添加健康建议
     */
    boolean addAdvice(HealthAdvice advice);

    /**
     * 更新健康建议
     */
    boolean updateAdvice(HealthAdvice advice);

    /**
     * 删除健康建议
     */
    boolean deleteAdvice(String adviceId);

    /**
     * 根据建议ID获取建议
     */
    HealthAdvice getAdviceById(String adviceId);

    /**
     * 获取用户的所有建议
     */
    List<HealthAdvice> getAdvicesByUserId(String userId);

    /**
     * 获取用户的未读建议
     */
    List<HealthAdvice> getUnreadAdvicesByUserId(String userId);

    /**
     * 获取用户指定类型的建议
     */
    List<HealthAdvice> getAdvicesByType(String userId, String adviceType);

    /**
     * 标记建议为已读
     */
    boolean markAsRead(String adviceId);

    /**
     * 标记建议为已实施
     */
    boolean markAsImplemented(String adviceId);

    /**
     * 获取用户的高优先级建议
     */
    List<HealthAdvice> getHighPriorityAdvices(String userId);

    /**
     * 删除过期的建议（超过30天）
     */
    boolean deleteExpiredAdvices(String userId);
}
